    import Vue from 'vue'
    import Vuex from 'vuex'
    Vue.use(Vuex)
    let car = window.JSON.parse(localStorage.getItem('car') || '[]')
    const store = new Vuex.Store({
        state: {
            car: car,

        },
        mutations: {
            //获取购物车商品数据
            getCount(state, goods) {
                let flag = false
                state.car.some(item => {
                    if (item.id === goods.id) {
                        item.count += goods.count
                        flag = true
                        return true
                    }
                })
                if (!flag) {
                    state.car.push(goods)
                }
                //将购物车数据写入localStorage 存入硬盘 将数据=持久化
                localStorage.setItem('car', JSON.stringify(state.car))
            },
            //更新购物车商品的数量
            updateCarCount(state, goods) {
                state.car.some(item => {
                    if (item.id === goods.id) {
                        item.count = goods.count
                        return true
                    }
                })

                //将购物车数据写入localStorage 存入硬盘 将数据=持久化
                localStorage.setItem('car', JSON.stringify(state.car))


            },
            //删除购物车中的商品
            delCar(state, id) {
                state.car.forEach((item, i) => {
                        if (item.id === id) {
                            state.car.splice(i, 1)
                            return true
                        }
                    })
                    //将购物车数据写入localStorage 存入硬盘 将数据=持久化
                localStorage.setItem('car', JSON.stringify(state.car))
            },
            //更新购物车状态
            updateShopCar(state, goods) {
                state.car.some(item => {
                        if (item.id === goods.id) {
                            item.status = goods.status
                            return true
                        }
                    })
                    //将购物车数据写入localStorage 存入硬盘 将数据=持久化
                localStorage.setItem('car', JSON.stringify(state.car))
            },
            //点击全选更新购物车状态
            updateCheckBoxCar(state, ccc) {
                if (ccc) {
                    state.car.forEach(item => {
                        item.status = true
                    })
                } else {
                    state.car.forEach(item => {
                        item.status = false
                    })
                }

                //将购物车数据写入localStorage 存入硬盘 将数据=持久化
                localStorage.setItem('car', JSON.stringify(state.car))
            }

        },
        getters: {
            //更新购物车商品的数量
            updatecar(state) {
                let c = 0;
                state.car.forEach(item => {
                    c += item.count
                });
                return c
            },
            //返回购物车id字符串
            getIds(state) {
                let ids = []
                state.car.forEach(item => {
                    ids.push(item.id)
                });
                return ids.join(',')
            },
            //将商品的id和 商品的选中状态绑定为键值对
            getSwithObj(state) {
                let c = {}
                state.car.forEach(item => c[item.id] = item.status)
                return c
            },
            //将购买的商品id 和 商品的数量绑定为键值对
            getobj(state) {
                let o = {}
                state.car.forEach(item => o[item.id] = item.count)
                console.log(o);
                return o
            },
            //计算购物车商品总价
            getPrice(state) {
                let p = 0;
                state.car.forEach(item => {
                    if (item.status) {
                        p += item.count * item.price
                    }
                })
                return p * 100
            },
            //计算商品的数量
            getCount(state) {
                let b = 0;
                state.car.forEach(item => {
                    if (item.status) {
                        b += item.count
                    }
                })
                return b
            }
        }
    })

    export default store;